#ifndef ANGELSCRIPTINTERPRETER_H
#define ANGELSCRIPTINTERPRETER_H

#include "Interpreter.h"

#include <Ogre.h>
#include <angelscript.h>

#include <iostream>
#include <stdio.h>
#include <stddef.h>

#include "add_on/scriptstring/scriptstring.h"
#include "add_on/scriptbuilder/scriptbuilder.h"
#include "add_on/contextmgr/contextmgr.h"

#include "Console.h"

#define AS_PROMPT  ">"

class AngelCodeInterpreter : public Interpreter
	{

	public:
		AngelCodeInterpreter();
		~AngelCodeInterpreter();

public:
        virtual void clearOutput() { mOutput.clear(); }
		virtual std::string getOutput() { return mOutput; }
		virtual std::string getPrompt() { return mPrompt; }
		virtual void insertLine(std::string&);
		
		int insertOutputFromAngelCode();

	protected:
		std::string mCurrentStatement;
		std::string mOutput;
		std::string mPrompt;
		
		asIScriptEngine* mEngine;
	};

void registerDegree(asIScriptEngine*);
void registerRadian(asIScriptEngine*);
void registerVector3(asIScriptEngine*);

#endif
